[小ネタ]あると便利ESP32とのシリアル通信
横田deGoおよびDevelopers.IO CAFEのウォークスルーにはたくさんのESP32を使用しています。 LED点滅では不足するシーンもあります。そこで簡単に情報を取得できる方法を紹介します。
こんにちはAIソリューション部のさかじです。横田deGoおよびDevelopers.IO CAFEのウォークスルーにはたくさんのESP32を使用しています。 LED点滅では不足するシーンもあります。そこで簡単に情報を取得できる方法を紹介します。
LED点滅デバッグならこちら
環境
- MacBook Pro(macOS High Sierra 10.13.6)
- micro USB-Bメス ケーブル(使用するPC/Macに合わせてご用意ください)
- Arduino IDE(V1.8.7)
- ESP32-DevKitC ESP-WROOM-32開発ボード
はじめに
組込みの開発を行なっていると、LED点滅のデバッグもいいですがデバッグ時に文字情報も欲しい時があります。
- このファームウェアのバージョンは何だろう?
- 今、このマイコンの状態を知りたい
- 設定を変更して動作をみたい
デバッグログのようにバラバラと出力することは簡単ですが、PC/Macからの問い合わせに合わせてマイコンが返答する簡単なモニタプログラムをまとめてみました。 サポートしていない文字列は無視します。
コード
void setup() { Serial.begin(115200); Serial.print("> "); } void loop() { if (Serial.available() > 0) { String s; s = Serial.readStringUntil('\n'); Serial.println(s); menu(s); } } void menu(String s) { if (s.equals("?")) { Serial.println("Hello world"); } else if (s.equals("ver")) { Serial.println("0.0.1"); } Serial.print("> "); }
出力結果
> ? Hello world > ver 0.0.1 > hogehoge >
最後に
簡単な処理ですとLEDだけでも良いですが、色々確認したい内容が増えてくるとシリアルへデバッグ情報を出力する方法になって行きます。次に双方向のI/Fが欲しくなります。簡単に追加できますので、最初に盛り込んでおくのもいいかもしれません。